﻿package CutLoad.mc
{
	import flash.display.MovieClip;
	import flash.events.MouseEvent;

	/**
	 * 一级分类mc菜单，注要提供mc元件
	 * @author smallerbird mail:smallerbird@gmail.com  site:www.mkigm.com QQ群:49983196
	 * 
	 */
	public class mcMenn {
		private var target:MovieClip,btnName:String,arrBtn:Array;
		private var funClickMe:Function;
		/**
		 *  
		 * @param target 父可视对象
		 * @param arrBtn 是否有子菜单 例如：[2,0,0,0,3]   0代表没有
		 * @param funClickMe 点击调用的函数  格式：function(第一层按钮编号:Number,第二层按钮编号:Number)  注：编号从1开始的数字。如果第二层按钮编号为-1说明，是点击第一层按钮
		 * @param btnName 名称的前缀:默认为:btn  例如要实现这个菜单，命名应该是这样：第一层btn_1 第二层父容器btn_1_  第二层父容器内按钮btn_1
		 * 
		 */		
		public function mcMenn(target:MovieClip,arrBtn:Array,funClickMe:Function,btnName:String="btn") {
			this.target=target;
			this.btnName=btnName;
			this.arrBtn=arrBtn;
			this.funClickMe=funClickMe;
			var btnCount:Number=arrBtn.length;
			for (var i:Number=1; i<=6; i++) {
				target[btnName + "_" + i].addEventListener(MouseEvent.MOUSE_OVER,funOver);
				target.addEventListener(MouseEvent.MOUSE_OUT,funOut);
				if (arrBtn[i-1]!=0) {
					target[btnName+"_"+i+"_"].visible=false;
					target[btnName + "_" + i + "_"].addEventListener(MouseEvent.MOUSE_OVER,funOver2);
					target[btnName + "_" + i + "_"].addEventListener(MouseEvent.MOUSE_OUT,funOut);
					for (var j:Number=1; j<arrBtn[i-1]; j++) {
						target[btnName + "_" + i + "_"][btnName + "_" + j].addEventListener(MouseEvent.MOUSE_OVER,funOver1);
						target[btnName + "_" + i + "_"][btnName + "_" + j].addEventListener(MouseEvent.CLICK,funClick);
					}
				} else {
					target[btnName + "_" + i].addEventListener(MouseEvent.CLICK,funClick1);
				}
			}
		}
		private function getId(obj:Object):Number {
			var arr:Array=obj.name.split("_");
			return Number(arr[1]);
		}
		private function funOver(e:MouseEvent):void {
			var id:Number=getId(e.target);
			if (arrBtn[id-1]!=0) {
				target[btnName+"_"+id+"_"].visible=true;
			}
		}
		private function funOut(e:MouseEvent):void {
			var id:Number=getId(e.target);
			if (arrBtn[id-1]!=0) {
				target[btnName+"_"+id+"_"].visible=false;
			}
		}
		private function funOver1(e:MouseEvent):void {
			var id:Number=getId(e.target);
			e.target.parent.visible=true;
		}
		private function funOver2(e:MouseEvent):void {
			e.target.visible=true;
		}
		private function funClick(e:MouseEvent):void {
			var arr:Array=e.target.name.split("_");
			var id:Number=arr[1];
			arr=e.target.parent.name.split("_");
			var pid:Number=arr[1];
			funClickMe(pid,id);
		}
		private function funClick1(e:MouseEvent):void {
			var arr:Array=e.target.name.split("_");
			var id:Number=Number(arr[1]);
			funClickMe(id,-1);
		}
	}
}